#pragma once
#include "precompiled.h"
#include "ParticlesCommon.h"

static const hkVector4 hUP (0, 1, 0);
static const hkVector4 hFORWARD (0, 0, 1);

static const hkVector4 hCHARACTER_GRAVITY (0, -32, 0);

#define MYBLUE_NORMAL hkColor::rgbFromChars{ 0, 0, 255, 255 }
#define MYBLUE_TRANSPARENT hkColor::rgbFromChars{ 0, 0, 255, 125 }

const int VISUALIZE_AXES = 1;
const int VISUALIZE_FRUSTUM = 1;
const int VISUALIZE_GUN_RAYCAST = 0;

const int FRUSTUM_CULLING_ON = 0;

class Physics_Scenery;

// Map rigidbody id's to actual game objects.
namespace RigidBodyGameObjectMap{
	void Initialize();

	void add_pair_scenery( hkUint32 rbid,  Physics_Scenery* scenery );
	
	Physics_Scenery* get_scenery( hkUint32 rbid );


}
namespace RigidBodyUniqueID{

	hkUint32 GenerateUniqueID();
}


class hkMovingRBCollectorPhantom : public hkpAabbPhantom
{
public:

	hkMovingRBCollectorPhantom( const hkAabb& aabb, hkUint32 collisionFilterInfo = 0 );

	// Callback implementation 
	virtual void addOverlappingCollidable( hkpCollidable* handle );

	// Callback implementation 
	virtual void removeOverlappingCollidable( hkpCollidable* handle );

	void set_particle( Particle* p );

	Particle* get_particle();
private:
	Particle* ref_particle;
};